
public class StringStudy {
    public static void main(String[] args) {
        String s1 = "58+11+123";
        String s2 = "hhh\\zhansan\\lsii";
        String[] split = s1.split("\\+");
        String[] split1 = s2.split("\\\\");
        for(String ss : split){
            System.out.println(ss);
        }
        for (String ss : split1){
            System.out.println(ss);
        }

        String s3 = "zhangsan+lisi wangwu&liuer";
        String[] split2 = s3.split(" +| |&");
        for (String ss : split2){
            System.out.println(ss);
        }

        String s4 = "0123456789";
        System.out.println(s4.substring(5));//56789
        System.out.println(s4.substring(2, 8));//234567
    }
    public static void main8(String[] args) {
        String s1 = "Zhangsan Lisi Wangwu";
        String[] s = s1.split(" ");
        for(String ss : s){
            System.out.println(ss);
        }
        System.out.println("===========================");
        String[] s2 = s1.split(" ", 2);
        for(String ss : s2){
            System.out.println(ss);
        }
    }
    public static void main7(String[] args) {
        String s1 = "abcdefg";
        System.out.println(s1.replaceAll("bcd", "xxx"));
        System.out.println(s1);

    }
    public static void main6(String[] args) {
        String s = "hello";
        // 字符串转数组
        char[] ch = s.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i]);
        }
        System.out.println("=================");
        // 数组转字符串
        String s2 = new String(ch);
        System.out.println(s2);

        String s3 = String.format("%d-%d-%d", 2019, 9,14);
        System.out.println(s3);
    }
    public static void main5(String[] args) {
        String s1 = "hello";
        String s2 = "HELLO";
        // 小写转大写
        System.out.println(s1.toUpperCase());
        // 大写转小写
        System.out.println(s2.toLowerCase());

        //只会处理需要处理的部分string
        String s3 = "ZhangSan张三";
        System.out.println(s3.toLowerCase());
        System.out.println(s3.toUpperCase());
    }
    public static void main4(String[] args) {
        String s1 = new String("abc");
        String s2 = new String("ac");
        String s3 = new String("abc");
        String s4 = new String("abcdef");
        System.out.println(s1.compareTo(s2)); // 不同输出字符差值-1
        System.out.println(s1.compareTo(s3)); // 相同输出 0
        System.out.println(s1.compareTo(s4)); // 前k个字符完全相同，输出长度差值 -3

    }
    public static void main3(String[] args) {
        String s1 = new String("hello");
        String s2 = new String("hello");
        String s3 = new String("Hello");

        // s1、s2、s3引用的是三个不同对象，因此==比较结果全部为false
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);

        // equals比较：String对象中的逐个字符
        // 虽然s1与s2引用的不是同一个对象，但是两个对象中放置的内容相同，因此输出true
        // s1与s3引用的不是同一个对象，而且两个对象中内容也不同，因此输出false
        System.out.println(s1.equals(s2));
        System.out.println(s1.equals(s3));

    }
    public static void main2(String[] args) {
        int a = 10; int b = 20; int c = 10; // 对于基本类型变量，==比较两个变量中存储的值是否相同
        System.out.println(a == b); // false
        System.out.println(a == c); // true

        // 对于引用类型变量，==比较两个引用变量引用的是否为同一个对象
        String s1 = new String("hello");
        String s2 = new String("hello");
        String s3 = new String("world");
        String s4 = s1;
        System.out.println(s1 == s2); // false
        System.out.println(s2 == s3); // false
        System.out.println(s1 == s4); // true
    }
    public static void main1(String[] args) {
        //使用常量串构造
        String s1 = "hello henandaxue";
        System.out.println(s1);

        //new一个String对象
        String s2 = new String("Guan");
        System.out.println(s2);

        //利用字符串数组进行构造
        char[] arr = {'h','e','l','l','0'};
        String s = new String(arr);
        System.out.println(s);

        //打印“”引起来的字符串的长度
        System.out.println("hwlloworld".length());
    }
}
